package com.nettytime.util.testjiebaonianbao;
import com.alibaba.fastjson.JSON;
import com.nettytime.entity.UserSocket;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

/**
 * MessageToByteEncoder和ByteToMessageDecoder来实现。
 * MessageToByteEncoder的作用是将响应数据编码为一个ByteBuf对象，
 * ByteToMessageDecoder则是将接收到的ByteBuf数据转换为某个对象数据。
 * 通过实现这两个抽象类
 */
public class JsonEncoder extends MessageToByteEncoder<UserSocket> {
    @Override
    protected void encode(ChannelHandlerContext ctx, UserSocket user, ByteBuf buf)throws Exception {
        String json = JSON.toJSONString(user);
        ctx.writeAndFlush(Unpooled.wrappedBuffer(json.getBytes()));
    }
}
